<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Mapping | Elasticsearch: The Definitive Guide [2.x] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch: The Definitive Guide [2.x]">
<link rel="up" href="mapping-analysis.html" title="Mapping and Analysis">
<link rel="prev" href="analysis-intro.html" title="Analysis and Analyzers">
<link rel="next" href="complex-core-fields.html" title="Complex Core Field Types">
<meta name="DC.type" content="Learn/Docs/Legacy/Elasticsearch/Definitive Guide/2.x">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="2.x">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<p>
  <strong>WARNING</strong>: The 2.x versions of Elasticsearch have passed their
  <a href="https://www.elastic.co/support/eol">EOL dates</a>. If you are running
  a 2.x version, we strongly advise you to upgrade.
</p>
<p>
  This documentation is no longer maintained and may be removed. For the latest
  information, see the <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html">current
  Elasticsearch documentation</a>.
</p>
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch: The Definitive Guide [2.x]</a></span>
»
<span class="breadcrumb-link"><a href="getting-started.html">Getting Started</a></span>
»
<span class="breadcrumb-link"><a href="mapping-analysis.html">Mapping and Analysis</a></span>
»
<span class="breadcrumb-node">Mapping</span>
</div>
<div class="navheader">
<span class="prev">
<a href="analysis-intro.html">« Analysis and Analyzers</a>
</span>
<span class="next">
<a href="complex-core-fields.html">Complex Core Field Types »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="mapping-intro"></a>Mapping<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h2>
</div></div></div>
<p>In order to be able to treat date fields as dates, numeric fields as numbers,
and string fields as full-text or exact-value strings, Elasticsearch needs to
know what type of data each field contains.  This information is contained in
the mapping.</p>
<p>As explained in <a class="xref" href="data-in-data-out.html" title="Data In, Data Out"><em>Data In, Data Out</em></a>, each document in an index has a <em>type</em>.
Every type has its own <em>mapping</em>, or <em>schema definition</em>. A mapping
defines the fields within a type, the datatype for each field,
and how the field should be handled by Elasticsearch. A mapping is also used
to configure metadata associated with the type.</p>
<p>We discuss mappings in detail in <a class="xref" href="mapping.html" title="Types and Mappings">Types and Mappings</a>. In this section, we’re going
to look at just enough to get you started.</p>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="core-fields"></a>Core Simple Field Types<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h3>
</div></div></div>
<p>Elasticsearch supports the following simple field types:</p>
<div class="ulist horizontal">
<ul class="horizontal">
<li class="listitem">
String: <code class="literal">string</code>
</li>
<li class="listitem">
Whole number: <code class="literal">byte</code>, <code class="literal">short</code>, <code class="literal">integer</code>, <code class="literal">long</code>
</li>
<li class="listitem">
Floating-point: <code class="literal">float</code>, <code class="literal">double</code>
</li>
<li class="listitem">
Boolean: <code class="literal">boolean</code>
</li>
<li class="listitem">
Date: <code class="literal">date</code>
</li>
</ul>
</div>
<p>When you index a document that contains a new field—​one previously not
seen—​Elasticsearch will use <a class="xref" href="dynamic-mapping.html" title="Dynamic Mapping"><em>dynamic mapping</em></a> to try
to guess the field type from the basic datatypes available in JSON,
using the following rules:</p>
<div class="informaltable">
<table border="0" cellpadding="4px">
<colgroup>
<col>
<col>
</colgroup>
<tbody valign="top">
<tr>
<td valign="top">
<p>
<span class="strong strong"><strong>JSON type</strong></span>
</p>
</td>
<td valign="top">
<p>
<span class="strong strong"><strong>Field type</strong></span>
</p>
</td>
</tr>
<tr>
<td valign="top">
<p>
Boolean: <code class="literal">true</code> or <code class="literal">false</code>
</p>
</td>
<td valign="top">
<p>
<code class="literal">boolean</code>
</p>
</td>
</tr>
<tr>
<td valign="top">
<p>
Whole number: <code class="literal">123</code>
</p>
</td>
<td valign="top">
<p>
<code class="literal">long</code>
</p>
</td>
</tr>
<tr>
<td valign="top">
<p>
Floating point: <code class="literal">123.45</code>
</p>
</td>
<td valign="top">
<p>
<code class="literal">double</code>
</p>
</td>
</tr>
<tr>
<td valign="top">
<p>
String, valid date: <code class="literal">2014-09-15</code>
</p>
</td>
<td valign="top">
<p>
<code class="literal">date</code>
</p>
</td>
</tr>
<tr>
<td valign="top">
<p>
String: <code class="literal">foo bar</code>
</p>
</td>
<td valign="top">
<p>
<code class="literal">string</code>
</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>This means that if you index a number in quotes (<code class="literal">"123"</code>), it will be
mapped as type <code class="literal">string</code>, not type <code class="literal">long</code>. However, if the field is
already mapped as type <code class="literal">long</code>, then Elasticsearch will try to convert
the string into a long, and throw an exception if it can’t.</p>
</div>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="_viewing_the_mapping"></a>Viewing the Mapping<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h3>
</div></div></div>
<p>We can view the mapping that Elasticsearch has for one or more types in one or
more indices by using the <code class="literal">/_mapping</code> endpoint. At the <a class="xref" href="mapping-analysis.html" title="Mapping and Analysis">start
of this chapter</a>, we already retrieved the mapping for type <code class="literal">tweet</code> in index
<code class="literal">gb</code>:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">GET /gb/_mapping/tweet</pre>
</div>
<p>This shows us the mapping for the fields (called <em>properties</em>) that
Elasticsearch generated dynamically from the documents that we indexed:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
   "gb": {
      "mappings": {
         "tweet": {
            "properties": {
               "date": {
                  "type": "date",
                  "format": "strict_date_optional_time||epoch_millis"
               },
               "name": {
                  "type": "string"
               },
               "tweet": {
                  "type": "string"
               },
               "user_id": {
                  "type": "long"
               }
            }
         }
      }
   }
}</pre>
</div>
<div class="tip admon">
<div class="icon"></div>
<div class="admon_content">
<p>Incorrect mappings, such as having an <code class="literal">age</code> field mapped as type <code class="literal">string</code>
instead of <code class="literal">integer</code>, can produce confusing results to your queries.</p>
<p>Instead of assuming that your mapping is correct, check it!</p>
</div>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="custom-field-mappings"></a>Customizing Field Mappings<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h3>
</div></div></div>
<p>While the basic field datatypes are sufficient for many cases, you will often
need to customize the mapping for individual fields, especially string fields.
Custom mappings allow you to do the following:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
Distinguish between full-text string fields and exact value string fields
</li>
<li class="listitem">
Use language-specific analyzers
</li>
<li class="listitem">
Optimize a field for partial matching
</li>
<li class="listitem">
Specify custom date formats
</li>
<li class="listitem">
And much more
</li>
</ul>
</div>
<p>The most important attribute of a field is the <code class="literal">type</code>. For fields
other than <code class="literal">string</code> fields, you will seldom need to map anything other
than <code class="literal">type</code>:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
    "number_of_clicks": {
        "type": "integer"
    }
}</pre>
</div>
<p>Fields of type <code class="literal">string</code> are, by default, considered to contain full text.
That is, their value will be passed through an analyzer before being indexed,
and a full-text query on the field will pass the query string through an
analyzer before searching.</p>
<p>The two most important mapping attributes for <code class="literal">string</code> fields are
<code class="literal">index</code> and <code class="literal">analyzer</code>.</p>
<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="_index_2"></a>index<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h4>
</div></div></div>
<p>The <code class="literal">index</code> attribute controls how the string will be indexed. It
can contain one of three values:</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">analyzed</code>
</span>
</dt>
<dd>
First analyze the string and then index it.  In other words, index this field as full text.
</dd>
<dt>
<span class="term">
<code class="literal">not_analyzed</code>
</span>
</dt>
<dd>
Index this field, so it is searchable, but index the value exactly as specified. Do not analyze it.
</dd>
<dt>
<span class="term">
<code class="literal">no</code>
</span>
</dt>
<dd>
Don’t index this field at all. This field will not be searchable.
</dd>
</dl>
</div>
<p>The default value of <code class="literal">index</code> for a <code class="literal">string</code> field is <code class="literal">analyzed</code>.  If we
want to map the field as an exact value, we need to set it to
<code class="literal">not_analyzed</code>:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
    "tag": {
        "type":     "string",
        "index":    "not_analyzed"
    }
}</pre>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>The other simple types (such as <code class="literal">long</code>, <code class="literal">double</code>, <code class="literal">date</code> etc) also accept the
<code class="literal">index</code> parameter, but the only relevant values are <code class="literal">no</code> and <code class="literal">not_analyzed</code>,
as their values are never analyzed.</p>
</div>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="_analyzer"></a>analyzer<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h4>
</div></div></div>
<p>For <code class="literal">analyzed</code> string fields, use the <code class="literal">analyzer</code> attribute to
specify which analyzer to apply both at search time and at index time. By
default, Elasticsearch uses the <code class="literal">standard</code> analyzer, but you can change this
by specifying one of the built-in analyzers, such as
<code class="literal">whitespace</code>, <code class="literal">simple</code>, or <code class="literal">english</code>:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
    "tweet": {
        "type":     "string",
        "analyzer": "english"
    }
}</pre>
</div>
<p>In <a class="xref" href="custom-analyzers.html" title="Custom Analyzers">Custom Analyzers</a>, we show you how to define and use custom analyzers
as well.</p>
</div>

</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="updating-a-mapping"></a>Updating a Mapping<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h3>
</div></div></div>
<p>You can specify the mapping for a type when you first create an index.
Alternatively, you can add the mapping for a new type (or update the mapping
for an existing type) later, using the <code class="literal">/_mapping</code> endpoint.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>Although you can <em>add</em> to an existing mapping, you can’t <em>change</em> existing
field mappings.  If a mapping already exists for a field, data from that
field has probably been indexed.  If you were to change the field mapping,
the indexed data would be wrong and would not be properly searchable.</p>
</div>
</div>
<p>We can update a mapping to add a new field, but we can’t change an existing
field from <code class="literal">analyzed</code> to <code class="literal">not_analyzed</code>.</p>
<p>To demonstrate both ways of specifying mappings, let’s first delete the <code class="literal">gb</code>
index:</p>
<div class="pre_wrapper lang-sense">
<pre class="programlisting prettyprint lang-sense">DELETE /gb</pre>
</div>
<div class="sense_widget" data-snippet="snippets/052_Mapping_Analysis/45_Mapping.json"></div>
<p>Then create a new index, specifying that the <code class="literal">tweet</code> field should use
the <code class="literal">english</code> analyzer:</p>
<div class="pre_wrapper lang-sense">
<pre class="programlisting prettyprint lang-sense">PUT /gb <a id="CO19-1"></a><i class="conum" data-value="1"></i>
{
  "mappings": {
    "tweet" : {
      "properties" : {
        "tweet" : {
          "type" :    "string",
          "analyzer": "english"
        },
        "date" : {
          "type" :   "date"
        },
        "name" : {
          "type" :   "string"
        },
        "user_id" : {
          "type" :   "long"
        }
      }
    }
  }
}</pre>
</div>
<div class="sense_widget" data-snippet="snippets/052_Mapping_Analysis/45_Mapping.json"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO19-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>This creates the index with the <code class="literal">mappings</code> specified in the body.</p>
</td>
</tr>
</table>
</div>
<p>Later on, we decide to add a new <code class="literal">not_analyzed</code> text field called <code class="literal">tag</code> to the
<code class="literal">tweet</code> mapping, using the <code class="literal">_mapping</code> endpoint:</p>
<div class="pre_wrapper lang-sense">
<pre class="programlisting prettyprint lang-sense">PUT /gb/_mapping/tweet
{
  "properties" : {
    "tag" : {
      "type" :    "string",
      "index":    "not_analyzed"
    }
  }
}</pre>
</div>
<div class="sense_widget" data-snippet="snippets/052_Mapping_Analysis/45_Mapping.json"></div>
<p>Note that we didn’t need to list all of the existing fields again, as we can’t
change them anyway.  Our new field has been merged into the existing mapping.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="_testing_the_mapping"></a>Testing the Mapping<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch-definitive-guide/edit/2.x/052_Mapping_Analysis/45_Mapping.asciidoc">edit</a>
</h3>
</div></div></div>
<p>You can use the <code class="literal">analyze</code> API to test the mapping for string fields by
name. Compare the output of these two requests:</p>
<div class="pre_wrapper lang-sense">
<pre class="programlisting prettyprint lang-sense">GET /gb/_analyze
{
  "field": "tweet",
  "text": "Black-cats" <a id="CO20-1"></a><i class="conum" data-value="1"></i>
}

GET /gb/_analyze
{
  "field": "tag",
  "text": "Black-cats" <a id="CO20-2"></a><i class="conum" data-value="1"></i>
}</pre>
</div>
<div class="sense_widget" data-snippet="snippets/052_Mapping_Analysis/45_Mapping.json"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO20-1"><i class="conum" data-value="1"></i></a><a href="#CO20-2"></a></p>
</td>
<td align="left" valign="top">
<p>The text we want to analyze is passed in the body.</p>
</td>
</tr>
</table>
</div>
<p>The <code class="literal">tweet</code> field produces the two terms <code class="literal">black</code> and <code class="literal">cat</code>, while the
<code class="literal">tag</code> field produces the single term <code class="literal">Black-cats</code>. In other words, our
mapping is working correctly.</p>
</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="analysis-intro.html">« Analysis and Analyzers</a>
</span>
<span class="next">
<a href="complex-core-fields.html">Complex Core Field Types »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
